1. Field of the Invention
This invention relates to computer input devices and, more particularly, a keyboard that may be utilized as a computer pointing device for disabled users.
2. Description of the Relevant Art
Modern computer systems often implement graphical user interfaces (xe2x80x9cGUIsxe2x80x9d) because it makes the interface with the computer system much more intuitive for the computer user. Computer systems implementing GUIs typically include a keyboard and a pointing device as input devices for the user. Keyboards typically allow the user to type in letters, numbers, and commands. Pointing devices typically allow the user to move a cursor about a display screen and to select objects. A commonly used pointing device is the computer mouse. Movement of the mouse about a flat surface typically located on a desktop causes movement of the cursor about the display screen. Selection of objects is accomplished by simultaneously holding the position of the cursor on top of the object while clicking, clicking and holding, or double clicking one or more buttons located on the mouse. A mouse typically has anywhere from one to three buttons and most commonly has two buttons. Use of a mouse generally requires that the user have good manual motor control. A variety of other pointing devices, such as the TrackPoint(trademark)(manufactured by the IBM Corporation of Armonk, N.Y.), track ball, touch pads, and touch screen overlays, have been developed as alternatives to the mouse but these devices also generally require good manual motor control.
A variety of conditions, such as cerebral palsy, Parkinson""s disease, multiple sclerosis, or arthritis, can interfere with the manual motor control needed to use a mouse, to move a cursor to a specific location on a display screen, and/or to select objects by operation of a mouse button. For example, to move an object about a display screen requires positioning the cursor on top of the object by moving the mouse, clicking a mouse button and holding the mouse button down, moving the object to the new location by moving the mouse, and releasing the mouse button. Using a pointing device, such as a mouse, to operate a GUI can therefore be extremely difficult for disabled users who have impaired motor control.
Many operating systems provide an alternative to using a pointing device. For example, certain objects may be selected by a key or combination of keys located on a keyboard. While such use of a keyboard partially eliminates the need for use of a mouse, users who experience difficulty manipulating a mouse may experience similar difficulty depressing the correct key or combination of keys on a keyboard. Additionally, use of the keyboard degrades the intuitive nature of a GUI.
It is therefore desirable to provide a computer pointing device that requires much less manual motor control than a mouse or other existing pointing devices. It is also desired that the buttons that need be operated in conjunction with the pointing device also be easier to use. Further, it is desired that simultaneous operation of the pointing device and buttons require much less manual motor control.
The problems outlined above are in large part addressed by utilizing a keyboard as a pointing device. Such a keyboard would have one or more large buttons that would allow the keyboard to be toggled between two different states. A first state corresponds to using the keyboard as a pointing device. A movement sensor is activated that may detect movement of the keyboard. The detected movement of the keyboard is then used to control the movement of a cursor about a display screen. Additionally, keys on the keyboard may be grouped together to form compound keys that correspond to the pointer buttons. For example, all keys on the left-hand side of the keyboard may correspond to the left mouse button while all keys on the right-hand side of the keyboard may correspond to the right mouse button. A second state of the keyboard corresponds to that of standard keyboard operation in which a user may utilize the keyboard to type in letters, numbers, and commands in the typical fashion.
Utilization of a keyboard as a pointing device may advantageously require much less manual control than a mouse or other existing pointing devices. Since a keyboard is much larger than a mouse, movement of the keyboard may be accomplished using both hands. Additionally, grouping of multiple keys on the keyboard to form compound keys corresponding to the mouse buttons or other pointing device buttons may simplify the actions of clicking, clicking and holding, and double clicking. For example, a compound key corresponding to a left-hand button on a pointing device may occupy the entire left-hand side of the keyboard thereby effectively providing a very large target. Additionally, one hand may be used to hold the keyboard steady, and thereby hold the cursor position steady, while the other hand may be used to activate the appropriate compound key. Utilization of the keyboard as a pointing device is therefore believed to require much less precise manual control. This may be particularly advantageous for disabled users and provide those users with a more intuitive input device for GUIs.
A keyboard that may be used as a pointing device is contemplated. The layout of keys on the keyboard may be a typical layout such as the xe2x80x9cQWERTYxe2x80x9d keyboard. The key layout may also be the popular expanded keyboard key layout, where the keyboard includes function keys and a number keypad in addition to the xe2x80x9cQWERTYxe2x80x9d layout. The keys may also be oversized to further accommodate the needs of a disabled user. The actual layout of the keys is not of critical importance, but rather the presence of some set of keys to allow a user to input letters, numbers, and commands is all that is needed. The keyboard may also include one or more large buttons to allow the state of the keyboard to be toggled. In the first state, the keyboard is utilized as a pointing device and slight movement of the keyboard about a desktop relative to a fixed point on the desktop is allowed. A movement sensor coupled to the keyboard is used to sense any movement of the keyboard. In the second state, the keyboard is utilized as a standard keyboard and is prevented from moving about the desktop.
In one embodiment, the movement sensor comprises a control stick extending below the keyboard. The control stick is coupled to a movement transducer located within a lower portion of the keyboard. Additionally, the keyboard has two sets of legs attached to a lower surface of the keyboard. When the keyboard is in the first state, the control stick and the first set of legs are in contact with an upper surface of a desktop on which the keyboard is placed. The first set of legs are adapted to move freely about the desktop while the control stick is adapted to remain fixed in place on the desktop. Movement of the keyboard then results in deflection of the control stick that is sensed by the movement transducer. When the keyboard is in the second state, the second set of legs are in contact with the desktop. The second legs are adapted to remain fixed in place on the desktop thereby preventing movement of the keyboard.
In addition to the keyboard described above, a system is also contemplated herein. The system includes a computer system, a keyboard, as described above, coupled to the computer system, a display screen coupled to the computer system, and a program adapted for execution on the computer system. When the keyboard is in the first state, the program processes movement data from the movement transducer. The program uses this information to control the position of a cursor on the display screen. Also while the keyboard is in the first state, the program groups one or more keys on the keyboard into at least one compound key that corresponds to a specific command. For example, all the keys on the left-hand side of the keyboard may be grouped into a compound key that corresponds to a left point device button. Actuation of any key corresponding to this compound key results in the computer system performing an operation identical to that operation performed after actuation of the left-hand button on the pointing device. When the keyboard is in the second state, the program processes data from the keyboard that results from user actuation of the keys as normal keyboard data (i.e., the program interprets the data as letters, numbers, and commands). The program is preferably present in the system memory of the computer system as a keyboard device driver and/or a pointing device driver. By having the program present as a device driver, the utilization of the keyboard as a pointing device will be transparent to various application programs, such as, for example, a word processor or spreadsheet, that a user may wish to run on the computer system.
A computer-readable storage medium is also contemplated herein. The storage medium contains program instructions that can be implemented by a processing unit to receive data from a keyboard, which may be utilized as a pointing device as described above. When the keyboard is in a first state, the program instruction may be implemented to process movement data from the keyboard and to control the position of a cursor on a display screen. Also while in the first state, the program instructions may be implemented to process key actuation data from the keyboard and to group one or more keys into a specific command such as a pointing device button operation. When the keyboard is in a second state, the program instructions may be implemented to process key actuation data as normal keyboard data corresponding to letters, numbers, and commands.